<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2019/1/29
 * Time: 10:27
 */

//多进程数据共享或者其他场景

//内存管理 --创建内存表
$table = new swoole_table(1024);
//设置内存表增加行
$table->column('id',$table::TYPE_INT,10);
$table->column('username',$table::TYPE_STRING,20);
$table->column('password',$table::TYPE_STRING,15);
$table->column('money',$table::TYPE_FLOAT,10);
//生成内存表
if ($table->create()===true) {
//    定义好表的结构后，执行create向操作系统申请内存，创建表
//调用create之前不能使用set、get等数据读写操作方法
//调用create之后不能使用column方法添加新字段
//系统内存不足，申请失败，create返回false
//申请内存成功，create返回true
    //todo 创建表成功 业务逻辑
    $table->set('test',['id'=>1,'username'=>'刘强','password'=>'123456','money'=>'20.3']);
//    与$table->set 设置参数一样  多种语法设置
    $table['test1']=['id'=>1,'username'=>'刘强','password'=>'123456','money'=>'20.3'];
}else{
    //todo 创建表失败 业务逻辑
    exit();
    echo 111;
}
//print_r($table['test1']);
//原子自增操作 加法
$table->incr('test','money',0.7);
print_r($table->get('test'));
//原子自减操作 减法
$table->decr('test','money',18);
print_r($table->get('test'));
//检查table中是否存在某一个key
if ($table->exist('test')) {
    echo '存在'.PHP_EOL;
}else{
    echo '不存在'.PHP_EOL;
}
//删除数据
if ($table->del('test1')) {
    echo '删除成功'.PHP_EOL;
}else{
    echo '删除失败'.PHP_EOL;
}
//返回table中存在的条目数
$count = $table->count();
var_dump($count);
